#pragma once

#include "../TestFramework/NonCopyable.h"
#include "Item.h"
#include "ItemConsumer.h"

namespace Explorer
{
    class ItemProvider : TestFramework::NonCopyable
    {
    public:
        virtual void ReportChildren(const Item& item, ItemConsumer& items) const = 0;
        virtual void ReportRoot(ItemConsumer& items) const = 0;
        virtual bool IsTypeSupported(const ItemType& type) const = 0;
        virtual bool IsParentType(const Item& item) const = 0;
    };
}
